package com.yaolong.api.modules.resident.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yaolong.commons.base2.BaseDomain;
import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * <p>
 * 常住居民表
 * </p>
 *
 * @author yaolonga
 * @since 2023-02-19
 * @version v1.0.0
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("opms_fix_resident")
@ApiModel(value="OpmsFixResident对象", description="常住居民表")
public class OpmsFixResident extends BaseDomain {

    private static final long serialVersionUID = 1L;



    @ApiModelProperty(value = "居民id")
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    @ApiModelProperty(value = "户口类型（农村，城镇）")
    @TableField("hk_type")
    private String hkType;

    @ApiModelProperty(value = "组号")
    @TableField("group_number")
    private String groupNumber;

    @ApiModelProperty(value = "户口本号")
    @TableField("hkb_number")
    private String hkbNumber;

    @ApiModelProperty(value = "姓名")
    @TableField("name")
    private String name;

    @ApiModelProperty(value = "曾用名")
    @TableField("former_name")
    private String formerName;

    @ApiModelProperty(value = "户主")
    @TableField("householder")
    private String householder;

    @ApiModelProperty(value = "户主关系")
    @TableField("householder_relation")
    private String householderRelation;

    @ApiModelProperty(value = "身份证")
    @TableField("id_card")
    private String idCard;

    @ApiModelProperty(value = "签发机关")
    @TableField("issuing_authority")
    private String issuingAuthority;

    @ApiModelProperty(value = "签发日期")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @TableField("issuing_date")
    private LocalDate issuingDate;

    @ApiModelProperty(value = "出生日期")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @TableField("birth_date")
    private LocalDate birthDate;

    @ApiModelProperty(value = "出生地")
    @TableField("birth_place")
    private String birthPlace;

    @ApiModelProperty(value = "性别")
    @TableField("sex")
    private String sex;

    @ApiModelProperty(value = "身高（cm）")
    @TableField("height")
    private Integer height;

    @ApiModelProperty(value = "血型（A/B/AB/O/熊猫）")
    @TableField("blood_type")
    private String bloodType;

    @ApiModelProperty(value = "健康状况")
    @TableField("health")
    private String health;

    @ApiModelProperty(value = "户籍所在地")
    @TableField("hj_addr")
    private String hjAddr;

    @ApiModelProperty(value = "民族（汉/黎等）")
    @TableField("nation")
    private String nation;

    @ApiModelProperty(value = "籍贯")
    @TableField("native_place")
    private String nativePlace;

    @ApiModelProperty(value = "现居地点")
    @TableField("now_addr")
    private String nowAddr;

    @ApiModelProperty(value = "其他地址")
    @TableField("other_addr")
    private String otherAddr;

    @ApiModelProperty(value = "联系电话")
    @TableField("contact_number")
    private String contactNumber;

    @ApiModelProperty(value = "文化程度")
    @TableField("culture_type")
    private String cultureType;

    @ApiModelProperty(value = "婚姻状况")
    @TableField("marital_status")
    private String maritalStatus;

    @ApiModelProperty(value = "兵役状况")
    @TableField("military_service_status")
    private String militaryServiceStatus;

    @ApiModelProperty(value = "宗教信仰")
    @TableField("religion")
    private String religion;

    @ApiModelProperty(value = "职业（xx）")
    @TableField("profession")
    private String profession;

    @ApiModelProperty(value = "政治面貌")
    @TableField("politics_status")
    private String politicsStatus;

    @ApiModelProperty(value = "备注")
    @TableField("remark")
    private String remark;

    @ApiModelProperty(value = "户籍状态")
    @TableField("hj_status")
    private String hjStatus;

    @ApiModelProperty(value = "登记日期")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField("regist_date")
    private LocalDateTime registDate;

    @ApiModelProperty(value = "家庭id")
    @TableField("family_id")
    private Long familyId;

    @ApiModelProperty(value = "是否困难群体")
    @TableField("is_difficult_group")
    private Boolean isDifficultGroup;

    @ApiModelProperty(value = "年龄")
    @TableField("age")
    private Integer age;

    @ApiModelProperty(value = "就业状况（失业、在业）")
    @TableField("employment_status")
    private String employmentStatus;

    @ApiModelProperty(value = "是否残疾（0-false 1-true）")
    @TableField("is_disability")
    private Boolean isDisability;

    @ApiModelProperty(value = "残疾等级（A/B/C/暂无等）")
    @TableField("disability_level")
    private String disabilityLevel;


}
